package com.tom.service;

import com.tom.config.CustomResponse;
import com.tom.dto.ArticleContentDTO;
import com.tom.entity.ArticleJSON;
import com.tom.entity.TomArticle;

/**
 * All rights Reserved, Designed By www.tom.com
 *
 * @version V1.0
 * @Package bw-article-api
 * @Description:
 * @author: dengyi
 * @date: 2020/2/10
 * @Copyright: 2019 www.tomonline-inc.com Inc. All rights reserved.
 * 注意：本内容仅限于TOM集团内部传阅，禁止外泄以及用于其他的商业目
 */
public interface IArticleService {
    void listArticle();

    void chargeListArticle();

    String getArticleContent(String channelname, String DataTab, String ID, String siteNo, String provenance, boolean DateLimit);

    void chargeListArticle(Integer year, Integer start, Integer end);

    void chargeListArticleNotSkip(Integer year, Integer start, Integer end, String provenance);

    String updateArticleByDate(String startDate, String endDate);

    String updateArticleByDateAndType(String startDate, String endDate, Integer type);
    String updateDBArticleByDate(String startDate, String endDate);

    /**
     * 抓取数位原生稿列表
     */
    void digitalNative();

    String deleteJsonTransitionHtmlFail(TomArticle tomArticle);

    /**
     * 判断是否已经抓取过
     *
     * @param articleContents
     * @param provenance
     * @param accessParameters
     * @return
     */
    String JudgeArticleStatus(ArticleContentDTO articleContents, String provenance, String accessParameters);

    /**
     * 判断是否存在opencms文章系统中
     *
     * @param content
     * @param accessParameters
     * @return
     */
    String queryPathInOpencms(ArticleContentDTO content, String accessParameters);

    /**
     * 创建JSON文件
     *
     * @param articleContents
     * @param channelname
     * @param accessParameters
     * @param DataTab
     * @return
     */
    ArticleJSON createJSON(ArticleContentDTO articleContents, String channelname, String accessParameters, String DataTab);

    /**
     * 插入期刊号
     *
     * @param magazineIssueNumber
     * @return
     */
    CustomResponse insertTomPrimePeriodical(Integer magazineIssueNumber);

    /**
     * 插入文章到爬虫记录表
     *
     * @param articleJSON
     * @param Content
     * @param aid
     * @param channelname
     * @param accessParameters
     * @param article_source
     * @return
     */
    int insertArticle(ArticleJSON articleJSON, ArticleContentDTO Content, String aid, String channelname, String accessParameters, Integer article_source);

    /**
     * 更新文章到爬虫记录表
     *
     * @param articleJSON
     * @param Content
     * @param aid
     * @param channelname
     * @param accessParameters
     * @param articleSource
     * @return
     */
    int updateArticle(ArticleJSON articleJSON, ArticleContentDTO Content, String aid, String channelname, String accessParameters, int articleSource);

    void updateArticleAccessParameters(String startDate, String endDate);

}
